home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / os2 / adaptor.zip / ADAPT.ZIP / adaptor / examples / fakul / fakul2.f < prev    next >
Text File  |  1993-03-23  |  990b  |  41 lines

  1.       Program fakul
  2. CC
  3. CC    Fakultaetsprogram, FORTRAN 90 Version
  4. CC
  5. c     implicit NONE
  6.       integer max
  7.       integer feld(:), carry(:)
  8.       integer I,K,N
  9.       integer length
  10.       integer s, lastval
  11.  
  12.       print *, 'Input value N !'
  13.       read *, N
  14.       print *, 'Input upper limit for size !'
  15.       read *, max
  16.  
  17.       allocate (feld(1:max), carry(1:max))
  18.  
  19.       feld = 0
  20.       carry = 0
  21.       feld(1)=1
  22.       length = 1
  23.  
  24.       do K=N,1,-1
  25.          feld(1:length) = (feld(1:length) + carry(1:length))*K
  26.          carry(1:length) = feld(1:length) / 65536
  27.          feld(1:length) = feld(1:length) - carry(1:length) * 65536
  28.          if (carry(length) .NE. 0) length = length + 1
  29.          carry (2:length) = carry (1:length-1)
  30.          carry (1) = 0
  31.       end do
  32.      
  33.       lastval = feld(length)
  34.       s = sum (feld(1:length))
  35.       print *, 'Size        = ', length
  36.       print *, 'Lastval     = ', lastval
  37.       print *, 'Control sum = ', s
  38.       deallocate (carry, feld)
  39.       end
  40.  
  41.